#ifndef ALGO_EVA_NSGA_H
#define ALGO_EVA_NSGA_H

#include "algohub_export.h"
#include "algohub_common_type.h"

namespace algo
{
	class AlgoEvaluator;
	class AlgoNSGAPrivate;
	class ALGOHUB_EXPORT AlgoNSGA final
	{
	public:
		AlgoNSGA();
		~AlgoNSGA();

		int NSGA(AlgoEvaluator* pAlgo,
			const algobase::NSGAParams& params,
			const algobase::Paths& ip_paths,
			std::vector<algobase::FinalPathScore>& op_paths);

	private:
		AlgoNSGAPrivate* d;
	};
}

#endif // !ALGO_EVA_NSGA_H
